package com.indexingsystem.system.service;

import java.util.List;

import com.indexingsystem.boss.Vo.ProductCategoryVo;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.ProductCategory;

public interface IProductCategorysService {

	/**
	 * 通过商品分类id删除产品分类信息.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	int deleteByPrimaryKey(String productCategoryId) throws Exception;

	/**
	 * 批量删除商品分类.
	 * 
	 * @param productCategoryIdList
	 * @return
	 */
	int deleteProductCategoryByIdBatch(List<String> productCategoryIdList) throws Exception;

	/**
	 * 带条件新增商品分类信息.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(ProductCategory record) throws Exception;

	/**
	 * 通过商品分类id查询商品分类信息.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	ProductCategory selectByPrimaryKey(String productCategoryId);

	/**
	 * 修改商品分类信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(ProductCategory record) throws Exception;

	/**
	 * 分页查询商品分类列表.
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<ProductCategory> selectProductCategoryList(Integer pageNo, Integer pageSize);

	/**
	 * 通过父商品分类id查询子商品分类列表.
	 * 
	 * @param productCategoryId
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<ProductCategory> selectSublevelProductCategorsList(String productCategoryId, Integer pageNo,
			Integer pageSize);

	/**
	 * 获取商品分类总数.
	 * 
	 * @return
	 */
	Integer getProductCategoryCount();

	/**
	 * 通过父商品分类id查询子商品分类列表总数量.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	Integer getSublevelProductCategorsListSize(String productCategoryId);

	/**
	 * 获取最大排序.
	 * 
	 * @return
	 */
	String getMaxProductCategory();

	/**
	 * 通过商品分类名称查询商品分类详情.
	 * 
	 * @param productName
	 * @return
	 */
	ProductCategory getProductCategoryByProductName(String productName);

	/**
	 * 获取商品分类上/下级树形结构列表.
	 * 
	 * @return
	 */
	List<ProductCategoryVo> getProductCategorsList();
	
	/**
	 * 判断产品Id是否存在
	 * @param productId
	 * @return
	 */
	String getProductId(String productId);
}